package Z.dailyExercise.May;

import java.util.HashMap;
import java.util.Stack;

public class _1190反转每对括号间的子串 {

    /**
     * 递归===麻烦了
     * 题解：直接借助栈 但是栈存的是已经翻转过的部分string
     * 见（：当前处理玩的存在栈
     * 见）：说明已经到了最里面的内容了 pop出来的内容还是带反转的 所以把当前sb翻转后拼接在pop后面 待外字符串遍历完再一起翻转
     *
     * 但是效率太低
     * @param s
     * @return
     */
    public String reverseParentheses(String s) {
        StringBuilder sb = new StringBuilder();
        Stack<String> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {

            if (s.charAt(i) == '('){
                stack.push(sb.toString());
                sb = new StringBuilder();

            }else if (s.charAt(i) == ')'){
               sb = new StringBuilder(stack.pop()+sb.reverse());

            }else {
                sb.append(s.charAt(i));
            }


        }
        return sb.toString();



    }

}
